/**
 * 个人中心模块接口列表
 */
//  这个后端的patch键名都是newOne

import base from './base' // 导入接口域名列表
import axios from '@/utils/http' // 导入http中创建的axios实例
import qs from 'qs' // 根据需求是否导入qs模块
const user = {
  getAllUSer (params) { // 分页查询所有用户
    return axios({
      method: 'get',
      url: `${base.sq}/v1/user/admin/`,
      params: params
    })
  },
  modifyUserInfo (data) { // 管理员修改一个用户信息，需要指定用户uid,其余非空字段视为需要修改
    // 只需要把要改的放进来，不改的可以是null，增加灵活性
    return axios.put(`${base.sq}/v1/user/admin/`, {
      userDescription: data.userDescription,
      userGrade: data.userGrade,
      userGroup: data.userGroup,
      userId: data.userId,
      userNickname: data.userNickname,
      userPassword: data.userPassword,
      userPortrait: data.userPortrait,
      userRealname: data.userRealname,
      userSchool: data.userSchool,
      userSex: data.userSex,
      userTel: data.userTel,
      userUid: data.userUid
    })
  },
  getUser (params) { // 根据id查询User,需要管理员权限
    return axios({
      method: 'get',
      url: `${base.sq}/v1/user/admin/${params.userId}`
    })
  },
  deleteUser (data) { // 按id删除用户
    return axios.delete(`${base.sq}/v1/user/admin/${data.userId}`, {
      userId: data.ManID
    })
  },
  getAllMan (params) { // 分页查询所有管理员
    return axios({
      method: 'get',
      url: `${base.sq}/v1/user/admin/admin/`,
      params: params
    })
  },
  deleteUserBatch (params) { // 批量删除非管理员用户 数组里放用户id
    return axios.request({
      url: `${base.sq}/v1/user/admin/noneAdmin/batch`,
      method: 'delete',
      data: params
    })
  },
  addUser (data) { // 管理员添加一个用户
    return axios.post(`${base.sq}/v1/user/admin/one`, {
      // userDescription: data.userDescription,
      userGrade: data.userGrade,
      userGroup: data.userGroup,
      userNickname: data.userNickname,
      userPassword: data.userPassword,
      userPortrait: data.userPortrait,
      userRealname: data.userRealname,
      userSchool: data.userSchool,
      userSex: data.userSex,
      userTel: data.userTel
    })
  },
  getAllStu (params) { // 分页查询所有学生
    return axios({
      method: 'get',
      url: `${base.sq}/v1/user/admin/student/`,
      params: params
    })
  },
  addStuBatch (data) { // 批量添加所有学生
    return axios.post(`${base.sq}/v1/user/admin/student/batch`, {
      userGrade: data.userGrade,
      userGroup: data.userGroup,
      userNickname: data.userNickname,
      userPassword: data.userPassword,
      userPortrait: data.userPortrait,
      userRealname: data.userRealname,
      userSchool: data.userSchool,
      userSex: data.userSex,
      userTel: data.userTel
    })
  },
  getAllTea (params) { // 分页查询所有教师
    return axios({
      method: 'get',
      url: `${base.sq}/v1/user/admin/teacher/`,
      params: params
    })
  },
  addTeaBatch (data) { // 批量添加教师
    return axios.post(`${base.sq}/v1/user/admin/one`, {
      userDescription: data.userDescription,
      userGrade: data.userGrade,
      userGroup: data.userGroup,
      userNickname: data.userNickname,
      userPassword: data.userPassword,
      userPortrait: data.userPortrait,
      userRealname: data.userRealname,
      userSchool: data.userSchool,
      userSex: data.userSex,
      userTel: data.userTel
    })
  },
  login (data) {
    return axios.post(`${base.sq}/v1/user/login`,
      {
        userTel: data.userTel,
        password: data.password,
        userGroup: data.userGroup
      })
  },
  logout () {
    return axios.post(`${base.sq}/v1/user/logout`, {})
  },
  changeNick (params) { // 修改用户本人的昵称
    return axios.patch(`${base.sq}/v1/user/nickname`, {
      newOne: params
    })
  },
  changeGender (params) { // 修改用户本人的性别
    return axios.patch(`${base.sq}/v1/user/sex`, {
      newOne: params
    })
  },
  changeIcon (data) { // 修改用户本人的头像
    return axios.post(`${base.sq}/v1/user/portrait`, {
      newOne: data
    })
  },
  changePhone (data) { // 先不写，还没实现
    return axios.post(`${base.sq}/changePhone`, {
    })
  },
  feedback (data) { // post提交 意见反馈
    return axios.post(`${base.sq}/feedback`,
      {
        headers: {
          'Content-Type': 'application/json;charset=utf-8',
          'App-Token': '$2a$10$Ueqrg75Ytf5lX8Kuwd3y7uGaPU05ipfMA/Ul58dP3fAJNOyS3Njqu' // 设置对应虚拟接口应用请求Token
        },
        data: qs.stringify(data)
      })
  }
}
export default user

// //如果服务端将参数作为java对象来封装接受
// axios.delete('demo/url', {
//   data: {
//       id: 123,
//       name: 'Henry',
//   },
//    timeout: 1000,
//   ...//其他相关配置
// })
// //如果服务端将参数作为url参数来接受，则请求的url为:www.demo/url?a=1&b=2形式
// axios.delete('demo/url', {
//   params: {
//       id: 123,
//       name: 'Henry',
//   },
//    timeout: 1000,
//   ...//其他相关配置
// })

// axios.put('demo/url', {
//   id: 123,
//   name: 'Henry',
// }, {
//   timeout: 1000,
//   ...//其他相关配置
// })

// 在使用axios时，注意到配置选项中包含params和data两者，以为他们是相同的，实则不然。

// 因为params是添加到url的请求字符串中的，用于get请求。

// 而data是添加到请求体（body）中的， 用于post请求。
